package com.leetCode.problem;


/**
 * Description:
 * Copyright:   Copyright (c)2019
 * Company:     zefu
 *
 * @author: 张李鑫
 * @version: 1.0
 * Create at:   2021-11-03 11:25:26
 * <p>
 * Modification History:
 * Date         Author      Version     Description
 * ------------------------------------------------------------------
 * 2021-11-03     张李鑫                     1.0         1.0 Version
 */
public class Problem12 {
    /**
     * 例如， 罗马数字 2 写做II，即为两个并列的 1。12 写做XII，即为X+II。 27 写做XXVII, 即为XX+V+II。
     * <p>
     * 通常情况下，罗马数字中小的数字在大的数字的右边。
     * 但也存在特例，例如 4 不写做IIII，而是IV。数字 1 在数字 5 的左边，所表示的数等于大数 5 减小数 1 得到的数值 4 。
     * 同样地，数字 9 表示为IX。这个特殊的规则只适用于以下六种情况：
     * <p>
     * I可以放在V(5) 和X(10) 的左边，来表示 4 和 9。
     * X可以放在L(50) 和C(100) 的左边，来表示 40 和90。
     * C可以放在D(500) 和M(1000) 的左边，来表示400 和900。
     * 给你一个整数，将其转为罗马数字。
     */


    //好无聊的题目 懒得刷
//    public static String intToRoman(int num) {
//
//    }
//
//
//    public static int romanToInt(String str) {
//
//    }

    /**
     * <p>
     * 根据数字去获取对应的字符串
     * </p>
     *
     * @param num
     * @return java.lang.String
     * @Author zlx
     * @date 2021/11/3
     */
    public static String switchString(int num) {
        if (num < 5 && num > 0) {
            return "I";
        }
        if (num < 10 && num >= 5) {
            return "V";
        }
        if (num <= 50 && num > 10) {
            return "L";
        }
        if (num > 50 && num <= 100) {
            return "C";
        }
        if (num <= 500 && num > 100) {
            return "D";
        }
        if (num > 500) {
            return "M";
        }
        return "";
    }


    /**
     * <p>
     * 根据字符串去获取对应的值
     * </p>
     *
     * @param str
     * @return int
     * @Author zlx
     * @date 2021/11/3
     */
    public static int getNumber(String str) {
        int number = -1;
        switch (str) {
            case "I":
                number = 1;
                break;
            case "V":
                number = 5;
                break;
            case "X":
                number = 10;
                break;
            case "L":
                number = 50;
                break;
            case "C":
                number = 100;
                break;
            case "D":
                number = 100;
                break;

            case "M":
                number = 1000;
                break;
            default:
                break;
        }
        return number;
    }


}
